import pandas as pd

# 载入Excel文件
file_path = '预测结果.xlsx'
data = pd.read_excel(file_path)


# 定义对每一列进行判定的函数
def grade_column(value, thresholds, scores, exception_message):
    for i, threshold in enumerate(thresholds):
        if value <= threshold:
            return scores[i]
    print(exception_message)
    return None

# 定义一个专门用来处理第五和第六列的函数
def grade_special_column(index, value, scores, exception_message):
    if -25 <= value <= 25:
        return scores[0]
    elif (-50 <= value < -25) or (25 < value <= 50):
        return scores[1]
    elif (-100 <= value < -50) or (50 < value <= 100):
        return scores[2]
    elif (-150 <= value < -100) or (100 < value <= 150):
        return scores[3]
    else:
        print(f'行 {index + 2}: {exception_message}')  # 输出行号，Excel里面的行号从1开始，所以要+2
        return None


# 对数据的每一行进行处理
for index, row in data.iterrows():
    # 第一列数据的判定
    data.at[index, '上不平衡评分'] = grade_column(row[0], [20, 100, 200, 800], [100, 95, 90, 80],
                                                '轮胎的上不平衡检测指标可能出现异常')

    # 第五列数据的判定
    score = grade_special_column(index, row[1], [100, 95, 90, 80], '轮胎的锥度效应力检测指标可能出现异常')
    if score is not None:
        data.at[index, '锥度效应力评分'] = score

# 保存评分后的数据表
data.to_excel('部件规格_相关性分析_质量评分.xlsx')